﻿using System;
using System.Linq;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using DesktopDOHS.appData.Schemas;

namespace PocketDOHS
{

    public partial class Cab : Form
    {
        private LstTbl2 prevForm;
        private TextBox txtFocus;
        private DateTime dataExame;

        public Cab(LstTbl2 lt)
        {
            InitializeComponent();
            prevForm = lt;
            txtExam.Focus();
            txtDia.Text = DateTime.Now.Day.ToString();
            txtMes.Text = DateTime.Now.Month.ToString();
            txtAno.Text = DateTime.Now.Year.ToString();
        }

        private void btnGravar_Click(object sender, EventArgs e)
        {
            //verifica se há algum campo vazio.
            if ((txtExam.Text == "") || (txtLoc.Text == "") || (txtTploc.Text == ""))
            {
                MessageBox.Show("Preencha Todos os Campos...", "ATENÇÃO!!");
                txtExam.Focus();
            }
            else
            {
                DialogResult resposta = MessageBox.Show("Todos os Dados Foram\nPreenchidos Corretamente?","Atenção!", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1);
                if (resposta == DialogResult.Yes)
                {
                    //salvando os dados.
                    Dados.iniciaCabecalho();
                    Dados.Cabecalho.CodExaminador = txtExam.Text;
                    Dados.Cabecalho.LocGeo = txtLoc.Text;
                    Dados.Cabecalho.TipoLoc = txtTploc.Text;
                    Dados.Cabecalho.DataLevantamento = dataExame.Date.ToString("dd/MM/yyyy");

                    //instanciando os próximos forms.
                    foreach (Form f in FormsMethods.VetForms)
                    {
                        f.Show();
                    }
                    FormsMethods.frmSubMenu = new SubMenu();
                    FormsMethods.frmSubMenu.Show();
                    prevForm.Close();
                    this.Close();
                }
            }
        }

        private void btnVoltar_Click(object sender, EventArgs e)
        {
            prevForm.BringToFront();
        }

        #region Text Changed

        public void TxtGotFocus(object sender, EventArgs e)
        {
            txtFocus = (TextBox)sender;
        }

        public void WritetxtExam(object sender, EventArgs e)
        {
            FormsMethods.WriteTextBox((Button)sender, txtFocus, this);
        }

        private void txtTploc_LostFocus(object sender, EventArgs e)
        {
            buttonsTxtTpLocFocus(true);
        }

        private void txtTploc_GotFocus(object sender, EventArgs e)
        {
            buttonsTxtTpLocFocus(false);
            txtFocus = (TextBox)sender;
        }

        /// <summary>
        /// Ativação dos Botões para o TextBox Tipo Localização
        /// </summary>
        /// <param name="b">Ativa/Desativa botões</param>
        private void buttonsTxtTpLocFocus(bool b)
        {
            btn0.Enabled = b;
            btn4.Enabled = b;
            btn5.Enabled = b;
            btn6.Enabled = b;
            btn7.Enabled = b;
            btn8.Enabled = b;
            btn9.Enabled = b;
        }

        #endregion

        private void txtDataNasc_TextChanged(object sender, EventArgs e)
        {
            if (txtDia.Text.Length == txtDia.MaxLength)
                if ((Convert.ToInt32(txtDia.Text)) > 31)
                {
                    MessageBox.Show("Dia Inválido", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtDia.Text = "";
                    txtDia.Focus();
                }
            if (txtMes.Text.Length == txtMes.MaxLength)
                if ((Convert.ToInt32(txtMes.Text)) > 12)
                {
                    MessageBox.Show("Mês Inválido", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtMes.Text = "";
                    txtMes.Focus();
                }
            if (txtAno.Text.Length == txtAno.MaxLength)
                if (((Convert.ToInt32(txtAno.Text)) < 1900) || ((Convert.ToInt32(txtAno.Text)) > 2300))
                {
                    MessageBox.Show("Ano Inválido", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtAno.Text = "";
                    txtAno.Focus();
                }
            if ((txtDia.Text.Length + txtMes.Text.Length + txtAno.Text.Length) == 8)
            {
                try
                {
                    DateTime dataExame = Convert.ToDateTime(txtDia.Text + "/" + txtMes.Text + "/" + txtAno.Text);
                }
                catch (Exception)
                {
                    MessageBox.Show("Data Inválida", "Atenção!", MessageBoxButtons.OK, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button1);
                    txtDia.Text = "";
                    txtMes.Text = "";
                    txtAno.Text = "";
                    txtDia.Focus();
                }
            }
        }
    }   
}